Kyle Schwarber hit a solo shot in the first inning for his 16th home run of the season and Zack Wheeler struck out four batters over seven innings as the Philadelphia Phillies edged the Boston Red Sox 2-1.